package org.example.cet.demos.controller;

import org.example.cet.demos.domain.Result;
import org.example.cet.demos.utils.ChatGLMUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/hello")
@RestController
public class HelloController {

    @GetMapping("/testInvoke1/{question}")
    public Result testInvoke1(@PathVariable String question) {
        String level =
                "14分——条理不清，思路紊乱，语言支离破碎或大部分句子均有错误，且多数为严重错误。" +
                "35.5分——基本切题。表达思想不清楚，连贯性差。有较多的严重语言错误。" +
                "57分——基本切题。有些地方表达思想不够清楚，文字勉强连贯；语言错误相当多，其中有一些是严重错误。" +
                "78分——切题。表达思想清楚，文字连贯，但有少量语言错误。" +
                "99分——切题。表达思想清楚，文字通顺，连贯性较好。基本上无语言错误，仅有个别小错误" +
                "注：白卷，作文与题目毫不相关，或只有几个孤立的词而无法表达思想，则给0分。" +
                "字数不够120个，应酌情扣分，具体标准：" +
                "累计字数在110～119之间，扣7分;累计字数在100～109之间，扣14分；累计字数在90～99之间，扣21分； 累计字数在80～89之间，扣28分；累计字数在70～79之间，扣50分；累计字数<69，扣64分。" +
                "注：如题目给出主题句，祈使句，结束句，均不得计入所写字数；只写一段者：0－28分；只写两段者：0－64分（指规定三段的作文）"+"满分106.5，请给这篇作文给出具体分数，不要任何其他文字。只回答一个数字！例如：98";
        return Result.success(ChatGLMUtils.testInvoke(level + question));
    }

    @GetMapping("/testInvoke2/{question}")
    public Result testInvoke2(@PathVariable String question) {
        String level =
                "翻译题满分106.5分。"+
                "106.5分---有2处不明显的小错(冠词、单复数、时态、介词、用词不贴切等);" +
                "99分---有5处不明显的小错(冠词、单复数、时态、介词、用词不贴切等);" +
                "92分---有7处不明显的小错(冠词、单复数、时态、介词、用词不贴切等);" +
                "85---分有一个严重错句;" +
                "78分---有3处明显语言错句;" +
                "71分---有4处明显语言错误;" +
                "64分---5个句子正确或基本正确;" +
                "57分---4个句子正确或基本正确;" +
                "50分---3个句子正确或基本正确;" +
                "43分---内容基本表达，有两个句子正确;" +
                "35.5分---一个句子正确;" +
                "28分---没有一个正确句子，但有三个句子有小错;" +
                "21分---内容基本表达，但所有句子都有错误和严重错误。严重错误少;" +
                "14分---严重错误多;" +
                "7分---严重错误极多;" +
                "0分---未作答，或只有几个孤立的词，或译文与原文毫不相关。根据关键词“创作的翻译”，不给分。" + "请给这段翻译直接给出具体分数，不要任何其他文字。只回答一个数字！例如：98";
        return Result.success(ChatGLMUtils.testInvoke(level + question));
    }

    @GetMapping("/evaluate/{question}")
    public Result evaluate(@PathVariable String question) {
        String level =
                "请给这篇翻译或作文评价";
        return Result.success(ChatGLMUtils.testInvoke(level + question));
    }
/*

    @GetMapping("/testAsyncInvoke/{question}")
    public String testAsyncInvoke(@PathVariable String question) {
        ChatGLMUtils.testAsyncInvoke(question);
        return "testAsyncInvoke";
    }


    @GetMapping("/testSseInvoke/{question}")
    public String testSseInvoke(@PathVariable String question) {
        ChatGLMUtils.testSseInvoke(question);
        return "testSseInvoke";
    }
    */
}
